package com.expert.result;

import com.expert.constant.CodeConstant;
import com.expert.constant.StatusConstant;
import lombok.Data;

import java.io.Serializable;

/**
 * @author cxs
 */
@Data
public class Result<T> implements Serializable {
    //封装编码
    private Integer code;
    //封装信息
    private String msg;
    //封装具体的数据
    private T data;

    /**
     * 返回无数据的成功结果
     * @return 无数据的成功结果
     * @param <T>
     */
    public static <T>Result<T> success(){
        Result<T> result=new Result<>();
        result.code= CodeConstant.SUCCESS;
        return result;
    }

    /**
     * 返回有数据的成功结果
     * @return 有数据的成功结果
     * @param <T>
     */
    public static <T>Result<T> success(T data){
        Result<T> result=new Result<>();
        result.data=data;
        result.code= CodeConstant.SUCCESS;
        return result;
    }
    /**
     * 返回错误信息
     * @param message 信息提示
     * @return
     * @param <T> 类型
     */
    public static <T>Result<T> error(String message,Integer code){
        Result<T> result=new Result<>();
        result.code= code;
        result.msg=message;
        return result;
    }
}
